#ifndef _REPORT_H_
#define _REPORT_H_
#include "CommonParamValue.h"
#include "IntParamValue.h"
#include "StringParamValue.h"
#include "DoubleParamValue.h"
#include "CurTimeParamValue.h"
#include <map>
#include <iostream>
using namespace std;
class Report
{
private:
	static const char LEFT_DELIMITER = '{';
	static const char RIGHT_DELIMITER = '}';
	map <string, CommonParamValue*> params;
	map <string, CommonParamValue*>::iterator paramsIter;
	string textTemplate;
	string reportText;
	CommonParamValue* CreateParamValue(const string &strType) const;
public:
	Report(const string& fileParamsPath, const string& txtTmpl);
	~Report();
	string GetReport() const;
	bool SaveReport(const string& outputFile) const;
	string GetTextTemplate() const;
	void GenerateReport();
};
#endif